package com.caipu.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.caipu.dto.DishDetailDTO;
import com.caipu.dto.DishSearchDTO;
import com.caipu.entity.Dish;

import java.util.List;

public interface DishService extends IService<Dish> {
    
    /**
     * 搜索菜品
     */
    Page<DishDetailDTO> searchDishes(DishSearchDTO searchDTO);
    
    /**
     * 获取菜品详情
     */
    DishDetailDTO getDishDetail(Long id);
    
    /**
     * 随机选择菜品
     */
    DishDetailDTO randomSelectDish(DishSearchDTO searchDTO);
    
    /**
     * 添加菜品标签
     */
    void addDishTags(Long dishId, List<Long> tagIds);
    
    /**
     * 删除菜品标签
     */
    void removeDishTags(Long dishId, List<Long> tagIds);
    
    /**
     * 根据菜品ID列表获取菜品详情
     */
    Page<DishDetailDTO> getDishesByIds(List<Long> dishIds, int page, int size);
    
    /**
     * 获取推荐菜品（收藏数最高的50个菜品中随机选择10个）
     */
    List<DishDetailDTO> getRecommendedDishes();
    
    /**
     * 根据条件获取随机菜品列表（20个）
     */
    List<DishDetailDTO> getRandomDishes(List<Long> categoryIds, List<Long> tagIds, List<Long> dishIds);
}